package com.l2qq.common.kit;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.safety.Safelist; // 1.12.0+ 后 Whitelist 更名为 Safelist

public class JsoupXssUtil {
    // 基础白名单：允许文本、图片及基本格式标签
    private static final Safelist safelist = Safelist.basicWithImages();
    // 禁用 HTML 格式化（保留原始结构）
    private static final Document.OutputSettings outputSettings = new Document.OutputSettings().prettyPrint(false);

    static {
        // 允许所有标签使用 style 属性（富文本样式必需）
        safelist.addAttributes(":all", "style", "class");
        // 允许图片使用 data-* 属性（兼容 Base64 图片）
        safelist.addAttributes("img", "data-src", "data-filename");
    }

    public static String clean(String html) {
        if (html == null || html.isEmpty()) return html;
        return Jsoup.clean(html, "", safelist, outputSettings);
    }
}